package org.dromara.xhlj.domain.bo;

import org.dromara.xhlj.domain.XhljActivity;
import lombok.*;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import io.github.linpeilie.annotations.AutoMapper;
import jakarta.validation.constraints.*;
import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;

import java.util.Date;
import java.io.Serial;
import java.io.Serializable;

/**
 * 活动业务对象 xhlj_activity
 *
 * @author yf
 * @date 2024-07-28
 */
@Data
@AutoMapper(target = XhljActivity.class, reverseConvertGenerate = false)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class XhljActivityBo extends BaseEntity {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 活动ID
     */
    @NotNull(message = "活动ID不能为空", groups = {EditGroup.class})
    private Integer activityId;
    /**
     * 活动标题
     */
    private String activityTitle;
    /**
     * 大会ID
     */
    private Integer conferenceInfoId;
    /**
     * 大会日程ID
     */
    private Integer meetingScheduleId;
    /**
     * 会场ID
     */
    private Integer venuesId;
    /**
     * 创建人sys_user（大会管理员）
     */
     private Integer createBy;
    /**
     * 活动内容
     */
    private String activityContent;
    /**
     * 活动地点
     */
    private String activityLocation;
    /**
     * 活动位置地图
     */
    private String activityMap;
    /**
     * 活动开始时间
     */
    private Date activityStartTime;
    /**
     * 活动结束时间
     */
    private Date activityEndTime;
    /**
     * 活动报名人数
     */
    private Integer signUpCount;
    /**
     * 活动热度
     */
    private Integer activityPopularity;
    /**
     * 活动订阅量
     */
    private Integer subscriptionCount;
    /**
     * 活动类型（0=会议（线上直播/线下报名），1=展商展销（仅线下报名），2=安全特训营（仅线下报名），3=精华特刊（仅线下报名），4=作品征集（仅线下报名），5=数字成果展（仅线下报名））
     */
    private String activityType;
    /**
     * 活动标签（0=网络安全，1=AI人工智能，2=数字安全，3=数字经济，4=智慧城市，5=特色活动）
     */
    private String activityTags;
    /**
     * 活动图片
     */
    private String activityImage;
    /**
     * 直播回放
     */
    private String activityLiveFile;
    /**
     * 直播链接
     */
    private String liveStreamLink;
    /**
     * 活动状态（0=未开始，1=进行中，2=已结束）
     */
    private String activityStatus;
    /**
     * 活动报名费金额
     */
    private BigDecimal activityRegistrationPrice;
}
